package dao;

import org.apache.ibatis.annotations.Param;
import pojo.Member;
import pojo.MemberSearchCondition;

import java.util.HashMap;
import java.util.List;

public interface MemberDao {

    //在多条件查询中，如果查询的条件不确定，可以直接使用HashMap作为参数.
    //优点：无需单独定义传递查询条件的类
    //缺点：向Map中存放参数时，KEY必须与动态SQL保持一致
    //public List<Member> searchMember(HashMap<String, Object> params);

    //也可以定义专门用于存放查询条件的实体类存放参数。
    //优点：设置参数时，无需关注属性名
    //缺点：需单独定义一个类来封装参数
    public List<Member> searchMember(MemberSearchCondition params);

    //根据城市查询
    public List<Member> searchMemberByCity(List<String> citys);

    //根据昵称查询用户信息-模糊查询

//    方式一：HashMap
//    public List<Member> searchMemberByNick(HashMap params);

//    方式二：String
    //使用${}时，即使只有一个String参数也要使用@Param注解声明参数的key,非String的对象参数不用声明。
    public List<Member> searchMemberByNick(@Param("keyWord") String keyWord);

    public Member queryMemberById(int mid);

    public int updateMember(@Param("mid") int mid,@Param("age") int age);

}
